// pages/testdetail/testresult/testresult.js
import {createTestRecord} from '../../../api/testrecord'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    totalScore: 0, // 总分
    scoreLevel: '', // 评分等级
    scoreText: '', // 评分描述
    assessmentId: null, // 测评ID
    userAnswers: [], // 用户答案
    studentId: "", // 学生ID - 这里先写死，等登录功能完成后改为动态获取
    caseId: null // 个案ID - 可选
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const studentInfo = wx.getStorageSync('studentInfo');
    const studentId = studentInfo ? studentInfo.id : null;
    if (options.answers && options.assessmentId) {
      const userAnswers = JSON.parse(decodeURIComponent(options.answers))
      const assessmentId = options.assessmentId
      
      this.setData({
        userAnswers: userAnswers,
        assessmentId: assessmentId,
        studentId: studentId
      })
      
      // 计算总分和评级
      this.calculateScore(userAnswers)
      // 自动保存测评记录
      this.saveTestRecord()
    } else {
      wx.showToast({
        title: '数据加载失败',
        icon: 'none'
      })
      setTimeout(() => {
        wx.navigateBack()
      }, 2000)
    }
  },
    /**
   * 计算总分和评级
   */
  calculateScore(userAnswers) {
    // 计算总分：将所有answerValue相加
    let totalScore = 0
    userAnswers.forEach(answer => {
      // 确保answerValue是数字类型
      const score = parseFloat(answer.answerValue) || 0
      totalScore += score
    })
    
    // 根据总分确定评级
    let scoreLevel = ''
    let scoreText = ''
    
    if (totalScore < 60) {
      scoreLevel = '极差'
      scoreText = '您的健康状况需要特别关注，建议及时调整生活习惯或寻求专业帮助。'
    } else if (totalScore >= 60 && totalScore < 70) {
      scoreLevel = '一般'
      scoreText = '您的健康状况一般，有一些方面需要改善，建议关注健康管理。'
    } else if (totalScore >= 70 && totalScore < 80) {
      scoreLevel = '中等'
      scoreText = '您的健康状况处于中等水平，继续保持良好习惯，还有提升空间。'
    } else if (totalScore >= 80 && totalScore < 90) {
      scoreLevel = '良好'
      scoreText = '您的健康状况良好，继续保持现有的健康生活方式。'
    } else if (totalScore >= 90 && totalScore <= 100) {
      scoreLevel = '优秀'
      scoreText = '您的健康状况非常优秀！继续保持这种健康的生活方式。'
    } else {
      scoreLevel = '未知'
      scoreText = '分数超出预期范围，请重新测试。'
    }
    
    this.setData({
      totalScore: Math.round(totalScore), // 四舍五入取整
      scoreLevel: scoreLevel,
      scoreText: scoreText
    })
    
    console.log('计算结果:', {
      总分: totalScore,
      评级: scoreLevel,
      描述: scoreText,
      答案数据: userAnswers
    })
  },

    /**
   * 保存测评记录到后端
   */
  async saveTestRecord() {
    try {
      const { totalScore, scoreLevel, scoreText, studentId, caseId } = this.data
      
      // 构建请求数据
      const requestData = {
        studentId: studentId, // 学生ID - 目前写死，后续改为动态获取
        caseId: caseId, // 个案ID - 可选
        testName: "心理测评", // 测评名称，加上时间戳避免重复
        testScore: Number(totalScore), // 分数
        testResult: `评级：${scoreLevel}，${scoreText}`, // 结果描述
        // testTime: new Date().toISOString().slice(0, 19).replace('T', ' '), // 创建时间，转换为ISO格式字符串
        sort: 0 // 排序序号
      }
      
      console.log('保存测评记录请求数据:', requestData)
      
      // 调用API保存测评记录
      const result = await createTestRecord(requestData)
      
      console.log('保存测评记录成功:', result)
      wx.showToast({
        title: '测评记录保存成功',
        icon: 'success',
        duration: 2000
      })
      
    } catch (error) {
      console.error('保存测评记录失败:', error)
    }
  },

    /**
   * 获取当前时间字符串
   */
  getCurrentTime() {
    const now = new Date()
    const year = now.getFullYear()
    const month = String(now.getMonth() + 1).padStart(2, '0')
    const day = String(now.getDate()).padStart(2, '0')
    const hour = String(now.getHours()).padStart(2, '0')
    const minute = String(now.getMinutes()).padStart(2, '0')
    return `${year}${month}${day}${hour}${minute}`
  },

  // 返回测试页面
  gobackTest:function() {
    console.log("1111111111111");
    wx.navigateBack({
      delta: 1  // 返回上一页
    })

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },
})